package com.gali.mall.service;

import com.gali.mall.model.pojo.Order;
import com.gali.mall.model.vo.OrderVO;
import com.github.pagehelper.PageInfo;

/**
 * @author gali
 * @date 2022/4/25 21:26
 */
public interface OrderService {
    /**
     * 添加订单
     * @param order
     * @return
     */
    String addOrder(Order order);

    /**
     * 删除订单
     * @param id
     * @return
     */
    boolean deleteOrder(Integer id);

    /**
     * 更新订单
     * @param order
     * @return
     */
    boolean reviseOrder(Order order);

    /**
     * 查询订单
     * @param id
     * @return
     */
    Order selectOrder(Integer id);

    /**
     * 查询订单详情
     * @param orderNo
     * @return
     */
    OrderVO selectByOrderNo(String orderNo);

    /**
     * 订单列表
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageInfo listForCustomer(Integer pageNum, Integer pageSize);

    /**
     * 取消订单
     * @param orderNo
     * @return
     */
    boolean cancelOrder(String orderNo);

    /**
     * 生成二维码
     * @param orderNo
     * @return
     */
    String code(String orderNo);

    /**
     * 支付订单
     * @param orderNo
     * @return
     */
    boolean payOrder (String orderNo);

    /**
     * 订单发货
     * @param orderNo
     * @return
     */
    boolean sendOrder(String orderNo);

    /**
     * 订单完结
     * @param orderNo
     * @return
     */
    boolean finishOrder(String orderNo);

    /**
     * 订单列表（后台）
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageInfo listForAdmin(Integer pageNum, Integer pageSize);
}
